package com.qf.day10;
/**
 * 替换字符串的叠字
 * 例如，对于字符串 "hello nice to meet you"
 * 将其中出现两次的字符 ll 和 ee 分别替换为 l~ 和 e~
 * 输出为：hel~o nice to me~t you
 *"浩浩荡荡"
 * 输出为： 浩~荡~
 */
public class Homework2 {
    public static void main(String[] args) {
        String s = "hello nice to meet you";
        String r = dealStr(s);
        System.out.println(r);
    }
    //"(.)\\1+"
    //$1~     $1引用第一个分组
    public static String dealStr(String input) {
        StringBuilder output = new StringBuilder(input.length());
        output.append(input.charAt(0)); // 第一个字符总是直接添加
        for (int i = 1; i < input.length(); i++) {
            char currentChar = input.charAt(i);
            char previousChar = input.charAt(i - 1);

            if (currentChar == previousChar) {
                // 如果当前字符与前一个字符相同，则添加~
                output.append('~');
            } else {
                // 否则，添加当前字符
                output.append(currentChar);
            }
        }

        return output.toString();
    }

}
